1. Field of the Invention
This invention relates to the field of computing and, in particular, to methods, computer program products, and hardware products for supporting virtual machine guest migration overcommit.
2. Description of Background
Mainframes and other computing machines supporting virtual guests typically provide some level of overcommit of resources to guests. More specifically, an overcommit of resources means that the sum total of all allocated guest resources exceeds the physical resources of a host machine.
Various techniques exist for supporting resource overcommit, such as swapping, ballooning, page sharing, and live migration. Swapping, a classical way to support overcommit, is implemented by the host machine selecting memory pages from one of the guests and writing them out to disk, thus freeing the memory pages for use. Should a guest require access to memory pages that have been swapped, the host reads data back from the disk. With ballooning, the guest and the host machine cooperate to determine which memory page or pages are to be evicted. It is the responsibility of the guest to select an appropriate memory page or pages and perform the actual swap if necessary. Page sharing is implemented by a hypervisor performing a search to locate two or more memory pages that include identical data. Any such pages are all merged into a single page, and this single page is then marked read only. If a guest writes to a shared page, it is unshared before granting the guest write access. Live migration involves the hypervisor moving one or more guests to a different host, thereby freeing the memory used by these guests.
Ballooning is fairly efficient since it relies on the guest to pick the memory to be evicted. Many times, the guest can simply shrink its cache in order to free memory. This approach often has a very low impact on the guest. However, one problem with ballooning is that it relies on guest cooperation which may reduce overall reliability. Swapping does not depend on the guest at all, so it is completely reliable from the host's point of view. However, the host has less knowledge than the guest about the guest's memory, so swapping is less efficient than ballooning. Page sharing relies indirectly on guest behavior. As long as guests are all running similar applications, the host will achieve a high share ratio. But if a guest starts running new applications, the share ratio will decrease and free memory in the host will drop. Live migration does not depend on the guest, but instead on the availability of free memory on other hosts in a virtualization pool. If other hosts do not have free space, one cannot migrate to them. In addition, live migration takes time, whereas the host may not have sufficient time when facing a memory shortage.
At present, many virtual machine hypervisors provide the necessary functionality to transmit guest instances from one machine to another. This functionality is sometimes termed migration, vmotion, or xenmotion. However, no technique presently exists for overcommitting virtual machines in a migration situation. Moreover, many virtual machines provide no mechanism for implementing an overcommit of resources.